/*
 * Copyright (c) 2023~Now Margoo
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

/**
 * /file vSkia.h
 * /brief The skia interface of VRenderer
 */

#pragma once

// Order skia to use OpenGL rendering
#ifndef SK_GL
#define SK_GL
#endif

// Include basic header of skia
// Generated by Skia script
#include <SkiaM101Binary/include/core/SkAnnotation.h>
#include <SkiaM101Binary/include/core/SkBBHFactory.h>
#include <SkiaM101Binary/include/core/SkBitmap.h>
#include <SkiaM101Binary/include/core/SkBlendMode.h>
#include <SkiaM101Binary/include/core/SkBlender.h>
#include <SkiaM101Binary/include/core/SkBlurTypes.h>
#include <SkiaM101Binary/include/core/SkCanvas.h>
#include <SkiaM101Binary/include/core/SkCanvasVirtualEnforcer.h>
#include <SkiaM101Binary/include/core/SkClipOp.h>
#include <SkiaM101Binary/include/core/SkColor.h>
#include <SkiaM101Binary/include/core/SkColorFilter.h>
#include <SkiaM101Binary/include/core/SkColorPriv.h>
#include <SkiaM101Binary/include/core/SkColorSpace.h>
#include <SkiaM101Binary/include/core/SkContourMeasure.h>
#include <SkiaM101Binary/include/core/SkCoverageMode.h>
#include <SkiaM101Binary/include/core/SkCubicMap.h>
#include <SkiaM101Binary/include/core/SkCustomMesh.h>
#include <SkiaM101Binary/include/core/SkData.h>
#include <SkiaM101Binary/include/core/SkDataTable.h>
#include <SkiaM101Binary/include/core/SkDeferredDisplayList.h>
#include <SkiaM101Binary/include/core/SkDeferredDisplayListRecorder.h>
#include <SkiaM101Binary/include/core/SkDocument.h>
#include <SkiaM101Binary/include/core/SkDrawable.h>
#include <SkiaM101Binary/include/core/SkEncodedImageFormat.h>
#include <SkiaM101Binary/include/core/SkExecutor.h>
#include <SkiaM101Binary/include/core/SkFlattenable.h>
#include <SkiaM101Binary/include/core/SkFont.h>
#include <SkiaM101Binary/include/core/SkFontArguments.h>
#include <SkiaM101Binary/include/core/SkFontMetrics.h>
#include <SkiaM101Binary/include/core/SkFontMgr.h>
#include <SkiaM101Binary/include/core/SkFontParameters.h>
#include <SkiaM101Binary/include/core/SkFontStyle.h>
#include <SkiaM101Binary/include/core/SkFontTypes.h>
#include <SkiaM101Binary/include/core/SkGraphics.h>
#include <SkiaM101Binary/include/core/SkICC.h>
#include <SkiaM101Binary/include/core/SkImage.h>
#include <SkiaM101Binary/include/core/SkImageEncoder.h>
#include <SkiaM101Binary/include/core/SkImageFilter.h>
#include <SkiaM101Binary/include/core/SkImageGenerator.h>
#include <SkiaM101Binary/include/core/SkImageInfo.h>
#include <SkiaM101Binary/include/core/SkM44.h>
#include <SkiaM101Binary/include/core/SkMallocPixelRef.h>
#include <SkiaM101Binary/include/core/SkMaskFilter.h>
#include <SkiaM101Binary/include/core/SkMath.h>
#include <SkiaM101Binary/include/core/SkMatrix.h>
#include <SkiaM101Binary/include/core/SkMilestone.h>
#include <SkiaM101Binary/include/core/SkOverdrawCanvas.h>
#include <SkiaM101Binary/include/core/SkPaint.h>
#include <SkiaM101Binary/include/core/SkPath.h>
#include <SkiaM101Binary/include/core/SkPathBuilder.h>
#include <SkiaM101Binary/include/core/SkPathEffect.h>
#include <SkiaM101Binary/include/core/SkPathMeasure.h>
#include <SkiaM101Binary/include/core/SkPicture.h>
#include <SkiaM101Binary/include/core/SkPictureRecorder.h>
#include <SkiaM101Binary/include/core/SkPixelRef.h>
#include <SkiaM101Binary/include/core/SkPixmap.h>
#include <SkiaM101Binary/include/core/SkPngChunkReader.h>
#include <SkiaM101Binary/include/core/SkPoint.h>
#include <SkiaM101Binary/include/core/SkPoint3.h>
#include <SkiaM101Binary/include/core/SkPromiseImageTexture.h>
#include <SkiaM101Binary/include/core/SkRRect.h>
#include <SkiaM101Binary/include/core/SkRSXform.h>
#include <SkiaM101Binary/include/core/SkRasterHandleAllocator.h>
#include <SkiaM101Binary/include/core/SkRect.h>
#include <SkiaM101Binary/include/core/SkRefCnt.h>
#include <SkiaM101Binary/include/core/SkRegion.h>
#include <SkiaM101Binary/include/core/SkScalar.h>
#include <SkiaM101Binary/include/core/SkSerialProcs.h>
#include <SkiaM101Binary/include/core/SkShader.h>
#include <SkiaM101Binary/include/core/SkSize.h>
#include <SkiaM101Binary/include/core/SkSpan.h>
#include <SkiaM101Binary/include/core/SkStream.h>
#include <SkiaM101Binary/include/core/SkString.h>
#include <SkiaM101Binary/include/core/SkStrokeRec.h>
#include <SkiaM101Binary/include/core/SkSurface.h>
#include <SkiaM101Binary/include/core/SkSurfaceCharacterization.h>
#include <SkiaM101Binary/include/core/SkSurfaceProps.h>
#include <SkiaM101Binary/include/core/SkSwizzle.h>
#include <SkiaM101Binary/include/core/SkTextBlob.h>
#include <SkiaM101Binary/include/core/SkTime.h>
#include <SkiaM101Binary/include/core/SkTraceMemoryDump.h>
#include <SkiaM101Binary/include/core/SkTypeface.h>
#include <SkiaM101Binary/include/core/SkTypes.h>
#include <SkiaM101Binary/include/core/SkUnPreMultiply.h>
#include <SkiaM101Binary/include/core/SkVertices.h>
#include <SkiaM101Binary/include/core/SkYUVAInfo.h>
#include <SkiaM101Binary/include/core/SkYUVAPixmaps.h>
#include <SkiaM101Binary/include/docs/SkPDFDocument.h>
#include <SkiaM101Binary/include/docs/SkXPSDocument.h>
#include <SkiaM101Binary/include/effects/Sk1DPathEffect.h>
#include <SkiaM101Binary/include/effects/Sk2DPathEffect.h>
#include <SkiaM101Binary/include/effects/SkBlenders.h>
#include <SkiaM101Binary/include/effects/SkBlurMaskFilter.h>
#include <SkiaM101Binary/include/effects/SkColorMatrix.h>
#include <SkiaM101Binary/include/effects/SkColorMatrixFilter.h>
#include <SkiaM101Binary/include/effects/SkCornerPathEffect.h>
#include <SkiaM101Binary/include/effects/SkDashPathEffect.h>
#include <SkiaM101Binary/include/effects/SkDiscretePathEffect.h>
#include <SkiaM101Binary/include/effects/SkGradientShader.h>
#include <SkiaM101Binary/include/effects/SkHighContrastFilter.h>
#include <SkiaM101Binary/include/effects/SkImageFilters.h>
#include <SkiaM101Binary/include/effects/SkLumaColorFilter.h>
#include <SkiaM101Binary/include/effects/SkOverdrawColorFilter.h>
#include <SkiaM101Binary/include/effects/SkPerlinNoiseShader.h>
#include <SkiaM101Binary/include/effects/SkRuntimeEffect.h>
#include <SkiaM101Binary/include/effects/SkShaderMaskFilter.h>
#include <SkiaM101Binary/include/effects/SkTableColorFilter.h>
#include <SkiaM101Binary/include/effects/SkTableMaskFilter.h>
#include <SkiaM101Binary/include/effects/SkTrimPathEffect.h>
#include <SkiaM101Binary/include/encode/SkJpegEncoder.h>
#include <SkiaM101Binary/include/gpu/GrBackendDrawableInfo.h>
#include <SkiaM101Binary/include/gpu/GrBackendSemaphore.h>
#include <SkiaM101Binary/include/gpu/GrBackendSurface.h>
#include <SkiaM101Binary/include/gpu/GrBackendSurfaceMutableState.h>
#include <SkiaM101Binary/include/gpu/GrConfig.h>
#include <SkiaM101Binary/include/gpu/GrContextOptions.h>
#include <SkiaM101Binary/include/gpu/GrContextThreadSafeProxy.h>
#include <SkiaM101Binary/include/gpu/GrDirectContext.h>
#include <SkiaM101Binary/include/gpu/GrDriverBugWorkarounds.h>
#include <SkiaM101Binary/include/gpu/GrRecordingContext.h>
#include <SkiaM101Binary/include/gpu/GrSurfaceInfo.h>
#include <SkiaM101Binary/include/gpu/GrTypes.h>
#include <SkiaM101Binary/include/gpu/GrYUVABackendTextures.h>
#include <SkiaM101Binary/include/gpu/ShaderErrorHandler.h>
#include <SkiaM101Binary/include/gpu/gl/GrGLAssembleInterface.h>
#include <SkiaM101Binary/include/gpu/gl/GrGLConfig.h>
#include <SkiaM101Binary/include/gpu/gl/GrGLExtensions.h>
#include <SkiaM101Binary/include/gpu/gl/GrGLFunctions.h>
#include <SkiaM101Binary/include/gpu/gl/GrGLInterface.h>
#include <SkiaM101Binary/include/gpu/gl/GrGLTypes.h>
#include <SkiaM101Binary/include/gpu/mock/GrMockTypes.h>
#include <SkiaM101Binary/include/pathops/SkPathOps.h>
#include <SkiaM101Binary/include/ports/SkTypeface_win.h>
#include <SkiaM101Binary/include/utils/SkAnimCodecPlayer.h>
#include <SkiaM101Binary/include/utils/SkBase64.h>
#include <SkiaM101Binary/include/utils/SkCamera.h>
#include <SkiaM101Binary/include/utils/SkCanvasStateUtils.h>
#include <SkiaM101Binary/include/utils/SkCustomTypeface.h>
#include <SkiaM101Binary/include/utils/SkEventTracer.h>
#include <SkiaM101Binary/include/utils/SkNWayCanvas.h>
#include <SkiaM101Binary/include/utils/SkNoDrawCanvas.h>
#include <SkiaM101Binary/include/utils/SkNullCanvas.h>
#include <SkiaM101Binary/include/utils/SkOrderedFontMgr.h>
#include <SkiaM101Binary/include/utils/SkPaintFilterCanvas.h>
#include <SkiaM101Binary/include/utils/SkParse.h>
#include <SkiaM101Binary/include/utils/SkParsePath.h>
#include <SkiaM101Binary/include/utils/SkRandom.h>
#include <SkiaM101Binary/include/utils/SkShadowUtils.h>
#include <SkiaM101Binary/include/utils/mac/SkCGUtils.h>
#include <SkiaM101Binary/modules/skottie/include/ExternalLayer.h>
#include <SkiaM101Binary/modules/skottie/include/Skottie.h>
#include <SkiaM101Binary/modules/skottie/include/SkottieProperty.h>
#include <SkiaM101Binary/modules/skparagraph/include/DartTypes.h>
#include <SkiaM101Binary/modules/skparagraph/include/FontCollection.h>
#include <SkiaM101Binary/modules/skparagraph/include/Paragraph.h>
#include <SkiaM101Binary/modules/skparagraph/include/ParagraphBuilder.h>
#include <SkiaM101Binary/modules/skparagraph/include/ParagraphCache.h>
#include <SkiaM101Binary/modules/skparagraph/include/ParagraphStyle.h>
#include <SkiaM101Binary/modules/skparagraph/include/TextShadow.h>
#include <SkiaM101Binary/modules/skparagraph/include/TextStyle.h>
#include <SkiaM101Binary/modules/skparagraph/include/TypefaceFontProvider.h>
#include <SkiaM101Binary/modules/skshaper/include/SkShaper.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGAttribute.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGAttributeParser.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGCircle.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGClipPath.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGContainer.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGDOM.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGDefs.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGEllipse.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFe.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeBlend.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeColorMatrix.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeComposite.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeDisplacementMap.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeFlood.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeGaussianBlur.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeImage.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeLightSource.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeLighting.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeMorphology.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeOffset.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFeTurbulence.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFilter.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGFilterContext.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGG.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGGradient.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGHiddenContainer.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGIDMapper.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGImage.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGLine.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGLinearGradient.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGMask.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGNode.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGPath.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGPattern.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGPoly.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGRadialGradient.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGRect.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGRenderContext.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGSVG.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGShape.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGStop.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGText.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGTransformableNode.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGTypes.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGUse.h>
#include <SkiaM101Binary/modules/svg/include/SkSVGValue.h>

#include <include/renderer/vGLHeader.h>